#include <REGX52.H>

/**
  * @brief		初始化串口
  * @parm		无
  * @retval		无
  */
void UART_Init()
{
	//SCON高4位分别为SM0、SM1、SM2、REN
	//SM0和SM1控制串口模式，选择01——8位UART，波特率可变
	//REN接收使能，REN = 0禁止接收，REN = 1允许接收
	//所以设置0101 0000
	SCON = 0x50;
	//PCON包含波特率和电源设置
	//前两位为SMOD和SMOD0
	//SMOD = 1波特率加倍，SMOD = 0，波特率不加倍
	//SMOD0是帧错误的，此处不用
	//所以设置1000 0000
	PCON |= 0x80;
	//设置定时器1
	TMOD &= 0x0F;	//高4位清零
	TMOD |= 0x20;	//0010，模式3——8位自动重载
	TR1 = 1;		//启用定时器T1
	ET1 = 0;		//禁止定时器T1中断	
	//定时器初值
	TL1 = 0xF4;		//设定定时初值
	TH1 = 0xF4;		//设定定时器重装值
	//中断开关
	ES = 1;			//串口中断开关
	EA = 1;			//总中断开关
}
/**
  * @brief 		通过串口发送一个字节数据
  * @parm		Byte 要发送字节数据
  * @retval		无
  */
void UART_SendByte(unsigned char Byte)
{
	SBUF = Byte;
	while(TI == 0);//数据发送完，硬件置1
	TI = 0;		//软件置0
}

///**
//  * @brief 		接收数据 模版
//  * @parm		无
//  * @retval		无
//  */
//void UART_Routine() interrupt 4
//{
//	if(RI == 1)//检测是否是接收数据中断
//	{
//		RI = 0;//软件置0
//	}
//}




